Run download_data.Rmd and niche_resiliance.Rmd First!

library(randomForest)
library(reshape2)
library(rpart)
fetch_city_niche_data_for <- function(pool_name) {
  results_filename <- paste(paste(pool_name, 'city', 'niche', 'resilience', 'intercept', sep = "_"), "csv", sep = ".")
  results <- read_csv(results_filename)
  
  joined <- left_join(city_data, results)
  
  pool_size_col_name <- paste(pool_name, 'pool', 'size', sep = "_")
  
  joined[,c("response", pool_size_col_name, "population_growth", "rainfall_monthly_min", "rainfall_annual_average", "rainfall_monthly_max", "temperature_annual_average", "temperature_monthly_min", "temperature_monthly_max", "happiness_negative_effect", "happiness_positive_effect", "happiness_future_life", "number_of_biomes", "realm", "biome_name", "region_20km_includes_estuary", "region_50km_includes_estuary", "region_100km_includes_estuary", "city_includes_estuary", "region_20km_average_pop_density", "region_50km_average_pop_density", "region_100km_average_pop_density", "city_max_pop_density", "city_average_pop_density", "mean_population_exposure_to_pm2_5_2019", "region_20km_cultivated", "region_20km_urban", "region_50km_cultivated", "region_50km_urban", "region_100km_cultivated", "region_100km_urban", "region_20km_elevation_delta", "region_20km_mean_elevation", "region_50km_elevation_delta", "region_50km_mean_elevation", "region_100km_elevation_delta", "region_100km_mean_elevation", "city_elevation_delta", "city_mean_elevation", "urban", "shrubs", "permanent_water", "open_forest", "herbaceous_wetland", "herbaceous_vegetation", "cultivated", "closed_forest", "share_of_population_within_400m_of_open_space", "percentage_urban_area_as_streets", "percentage_urban_area_as_open_public_spaces_and_streets", "percentage_urban_area_as_open_public_spaces", "city_gdp_per_population")]
}
merlin_city_niche_data <- fetch_city_niche_data_for('merlin')

── Column specification ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
cols(
  name = col_character(),
  response = col_double()
)

Joining, by = "name"
merlin_city_niche_data
merlin_city_niche_data_fixed <- rfImpute(response ~ ., merlin_city_niche_data)
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |    7.716    90.32 |
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |    7.925    92.76 |
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |    7.911    92.60 |
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |    7.897    92.43 |
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |     7.94    92.94 |
merlin_city_niche_data_fixed
source('./random_forest_selection_functions.R')
select_variables_from_random_forest(merlin_city_niche_data_fixed)
 [1] "merlin_pool_size"                                        "region_100km_cultivated"                                 "region_20km_elevation_delta"                            
 [4] "region_50km_cultivated"                                  "region_50km_elevation_delta"                             "city_mean_elevation"                                    
 [7] "temperature_monthly_min"                                 "region_20km_cultivated"                                  "city_elevation_delta"                                   
[10] "rainfall_annual_average"                                 "herbaceous_vegetation"                                   "rainfall_monthly_max"                                   
[13] "temperature_annual_average"                              "region_100km_urban"                                      "shrubs"                                                 
[16] "region_100km_elevation_delta"                            "region_50km_urban"                                       "region_50km_mean_elevation"                             
[19] "percentage_urban_area_as_open_public_spaces"             "share_of_population_within_400m_of_open_space"           "population_growth"                                      
[22] "region_20km_mean_elevation"                              "city_gdp_per_population"                                 "happiness_future_life"                                  
[25] "city_average_pop_density"                                "region_100km_mean_elevation"                             "happiness_positive_effect"                              
[28] "happiness_negative_effect"                               "open_forest"                                             "cultivated"                                             
[31] "region_20km_urban"                                       "percentage_urban_area_as_open_public_spaces_and_streets" "percentage_urban_area_as_streets"                       
[34] "rainfall_monthly_min"                                    "closed_forest"                                           "herbaceous_wetland"                                     
[37] "mean_population_exposure_to_pm2_5_2019"                  "realm"                                                   "temperature_monthly_max"                                
[40] "permanent_water"                                         "region_100km_average_pop_density"                        "biome_name"                                             
[43] "region_50km_average_pop_density"                         "urban"                                                  
select_variables_from_random_forest(merlin_city_niche_data_fixed_single_scale)
 [1] "merlin_pool_size"                                        "region_100km_cultivated"                                 "region_20km_elevation_delta"                            
 [4] "city_elevation_delta"                                    "temperature_monthly_min"                                 "rainfall_annual_average"                                
 [7] "city_mean_elevation"                                     "temperature_annual_average"                              "herbaceous_vegetation"                                  
[10] "rainfall_monthly_max"                                    "percentage_urban_area_as_open_public_spaces"             "population_growth"                                      
[13] "region_50km_mean_elevation"                              "city_gdp_per_population"                                 "region_100km_urban"                                     
[16] "happiness_future_life"                                   "share_of_population_within_400m_of_open_space"           "happiness_positive_effect"                              
[19] "city_average_pop_density"                                "open_forest"                                             "herbaceous_wetland"                                     
[22] "closed_forest"                                           "percentage_urban_area_as_open_public_spaces_and_streets" "temperature_monthly_max"                                
[25] "rainfall_monthly_min"                                    "mean_population_exposure_to_pm2_5_2019"                  "percentage_urban_area_as_streets"                       
[28] "realm"                                                   "region_100km_average_pop_density"                        "biome_name"                                             
[31] "urban"                                                  
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size")])
[1] "Mean  9.83324185545329 , SD:  0.108020977220518 , Mean + SD:  9.94126283267381"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated")])
[1] "Mean  7.99232355039231 , SD:  0.0987346598244752 , Mean + SD:  8.09105821021678"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta")])
[1] "Mean  7.71884750365334 , SD:  0.0943463048624823 , Mean + SD:  7.81319380851582"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta")])
[1] "Mean  7.28832737463507 , SD:  0.118323120312041 , Mean + SD:  7.40665049494711"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta", "temperature_monthly_min")])
[1] "Mean  7.27158846954248 , SD:  0.107283578951765 , Mean + SD:  7.37887204849425"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta", "temperature_monthly_min", "rainfall_annual_average")])
[1] "Mean  7.5616033792135 , SD:  0.126098274518769 , Mean + SD:  7.68770165373227"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta", "temperature_monthly_min", "rainfall_annual_average", "city_mean_elevation")])
[1] "Mean  7.54793220768361 , SD:  0.115157862948407 , Mean + SD:  7.66309007063202"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta", "temperature_monthly_min", "rainfall_annual_average", "city_mean_elevation", "temperature_annual_average")])
[1] "Mean  7.46427345093566 , SD:  0.093643141044835 , Mean + SD:  7.55791659198049"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta", "temperature_monthly_min", "rainfall_annual_average", "city_mean_elevation", "temperature_annual_average", "herbaceous_vegetation")])
[1] "Mean  7.56274983640729 , SD:  0.121591185124118 , Mean + SD:  7.6843410215314"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta", "temperature_monthly_min", "rainfall_annual_average", "city_mean_elevation", "temperature_annual_average", "herbaceous_vegetation", "rainfall_monthly_max")])
[1] "Mean  7.46064178123067 , SD:  0.125271345448836 , Mean + SD:  7.5859131266795"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta", "temperature_monthly_min", "rainfall_annual_average", "city_mean_elevation", "temperature_annual_average", "herbaceous_vegetation", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces")])
[1] "Mean  7.50642622702775 , SD:  0.144544442364443 , Mean + SD:  7.65097066939219"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta", "temperature_monthly_min", "rainfall_annual_average", "city_mean_elevation", "temperature_annual_average", "herbaceous_vegetation", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "population_growth")])
[1] "Mean  7.64483741960505 , SD:  0.138937152566949 , Mean + SD:  7.783774572172"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta", "temperature_monthly_min", "rainfall_annual_average", "city_mean_elevation", "temperature_annual_average", "herbaceous_vegetation", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "population_growth", "region_50km_mean_elevation")])
[1] "Mean  7.552523713242 , SD:  0.100685892278421 , Mean + SD:  7.65320960552042"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta", "temperature_monthly_min", "rainfall_annual_average", "city_mean_elevation", "temperature_annual_average", "herbaceous_vegetation", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "population_growth", "region_50km_mean_elevation", "city_gdp_per_population")])
[1] "Mean  7.4149688424601 , SD:  0.123149153234689 , Mean + SD:  7.53811799569479"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta", "temperature_monthly_min", "rainfall_annual_average", "city_mean_elevation", "temperature_annual_average", "herbaceous_vegetation", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "population_growth", "region_50km_mean_elevation", "city_gdp_per_population", "region_100km_urban")])
[1] "Mean  7.35531696631406 , SD:  0.119488604784723 , Mean + SD:  7.47480557109878"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta", "temperature_monthly_min", "rainfall_annual_average", "city_mean_elevation", "temperature_annual_average", "herbaceous_vegetation", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "population_growth", "region_50km_mean_elevation", "city_gdp_per_population", "region_100km_urban", "happiness_future_life")])
[1] "Mean  7.32642899186827 , SD:  0.116615705755584 , Mean + SD:  7.44304469762385"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta", "temperature_monthly_min", "rainfall_annual_average", "city_mean_elevation", "temperature_annual_average", "herbaceous_vegetation", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "population_growth", "region_50km_mean_elevation", "city_gdp_per_population", "region_100km_urban", "happiness_future_life", "share_of_population_within_400m_of_open_space")])
[1] "Mean  7.33029167138504 , SD:  0.151379813068732 , Mean + SD:  7.48167148445377"
create_fifty_rows_of_oob(merlin_city_niche_data_fixed[,c("response", "merlin_pool_size", "region_100km_cultivated", "region_20km_elevation_delta", "city_elevation_delta", "temperature_monthly_min", "rainfall_annual_average", "city_mean_elevation", "temperature_annual_average", "herbaceous_vegetation", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "population_growth", "region_50km_mean_elevation", "city_gdp_per_population", "region_100km_urban", "happiness_future_life", "share_of_population_within_400m_of_open_space", "happiness_positive_effect")])
[1] "Mean  7.33982125967019 , SD:  0.146517453948112 , Mean + SD:  7.4863387136183"

“merlin_pool_size”, “region_100km_cultivated”, “region_20km_elevation_delta”, “city_elevation_delta”

birdlife_city_niche_data <- fetch_city_niche_data_for('birdlife')

── Column specification ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
cols(
  name = col_character(),
  response = col_double()
)

Joining, by = "name"
birdlife_city_niche_data
birdlife_city_niche_data_fixed <- rfImpute(response ~ ., birdlife_city_niche_data)
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |    4.102    90.27 |
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |    3.933    86.54 |
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |    4.123    90.72 |
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |    4.101    90.25 |
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |    4.034    88.78 |
birdlife_city_niche_data_fixed
select_variables_from_random_forest(birdlife_city_niche_data_fixed)
 [1] "region_100km_cultivated"                                 "region_20km_elevation_delta"                             "happiness_future_life"                                  
 [4] "birdlife_pool_size"                                      "biome_name"                                              "herbaceous_wetland"                                     
 [7] "region_50km_cultivated"                                  "region_50km_elevation_delta"                             "temperature_annual_average"                             
[10] "temperature_monthly_min"                                 "shrubs"                                                  "region_100km_elevation_delta"                           
[13] "region_20km_cultivated"                                  "share_of_population_within_400m_of_open_space"           "rainfall_monthly_max"                                   
[16] "percentage_urban_area_as_open_public_spaces"             "region_50km_mean_elevation"                              "city_mean_elevation"                                    
[19] "temperature_monthly_max"                                 "region_20km_mean_elevation"                              "rainfall_annual_average"                                
[22] "city_elevation_delta"                                    "happiness_negative_effect"                               "cultivated"                                             
[25] "region_20km_urban"                                       "mean_population_exposure_to_pm2_5_2019"                  "percentage_urban_area_as_open_public_spaces_and_streets"
[28] "rainfall_monthly_min"                                    "happiness_positive_effect"                               "open_forest"                                            
[31] "city_gdp_per_population"                                 "region_100km_urban"                                      "population_growth"                                      
[34] "city_max_pop_density"                                    "region_100km_average_pop_density"                        "permanent_water"                                        
[37] "region_50km_urban"                                       "city_average_pop_density"                                "region_100km_mean_elevation"                            
[40] "percentage_urban_area_as_streets"                        "region_20km_average_pop_density"                         "closed_forest"                                          
[43] "urban"                                                   "realm"                                                   "herbaceous_vegetation"                                  
select_variables_from_random_forest(birdlife_city_niche_data_fixed_single_scale)
 [1] "region_100km_cultivated"                       "region_20km_elevation_delta"                   "birdlife_pool_size"                           
 [4] "happiness_future_life"                         "biome_name"                                    "herbaceous_wetland"                           
 [7] "temperature_annual_average"                    "shrubs"                                        "temperature_monthly_min"                      
[10] "rainfall_monthly_max"                          "percentage_urban_area_as_open_public_spaces"   "share_of_population_within_400m_of_open_space"
[13] "temperature_monthly_max"                       "city_elevation_delta"                          "rainfall_annual_average"                      
[16] "city_mean_elevation"                           "happiness_negative_effect"                     "region_20km_urban"                            
[19] "region_50km_mean_elevation"                    "mean_population_exposure_to_pm2_5_2019"        "open_forest"                                  
[22] "rainfall_monthly_min"                          "happiness_positive_effect"                     "city_max_pop_density"                         
[25] "population_growth"                             "percentage_urban_area_as_streets"              "urban"                                        
[28] "realm"                                        
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated")])
[1] "Mean  4.50386961689022 , SD:  0.0363565048630193 , Mean + SD:  4.54022612175324"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta")])
[1] "Mean  4.36902358064174 , SD:  0.0581432582983119 , Mean + SD:  4.42716683894005"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size")])
[1] "Mean  4.13678414086199 , SD:  0.0626975679061028 , Mean + SD:  4.19948170876809"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life")])
[1] "Mean  3.74317703463414 , SD:  0.0677633847986711 , Mean + SD:  3.81094041943281"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life", "biome_name")])
[1] "Mean  3.64353483615936 , SD:  0.0611563723900384 , Mean + SD:  3.70469120854939"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life", "biome_name", "herbaceous_wetland")])
[1] "Mean  3.40676311044889 , SD:  0.0598605598854249 , Mean + SD:  3.46662367033432"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life", "biome_name", "herbaceous_wetland", "temperature_annual_average")])
[1] "Mean  3.45831836593852 , SD:  0.053060794067478 , Mean + SD:  3.511379160006"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life", "biome_name", "herbaceous_wetland", "temperature_annual_average", "shrubs")])
[1] "Mean  3.49022830536913 , SD:  0.0489040922860873 , Mean + SD:  3.53913239765522"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life", "biome_name", "herbaceous_wetland", "temperature_annual_average", "shrubs", "temperature_monthly_min")])
[1] "Mean  3.48105288061014 , SD:  0.0517672797451502 , Mean + SD:  3.53282016035529"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life", "biome_name", "herbaceous_wetland", "temperature_annual_average", "shrubs", "temperature_monthly_min", "rainfall_monthly_max")])
[1] "Mean  3.50761152189195 , SD:  0.0689289548904812 , Mean + SD:  3.57654047678243"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life", "biome_name", "herbaceous_wetland", "temperature_annual_average", "shrubs", "temperature_monthly_min", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces")])
[1] "Mean  3.60844812567458 , SD:  0.0611350997446665 , Mean + SD:  3.66958322541924"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life", "biome_name", "herbaceous_wetland", "temperature_annual_average", "shrubs", "temperature_monthly_min", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "share_of_population_within_400m_of_open_space")])
[1] "Mean  3.59585050445119 , SD:  0.0635466826542851 , Mean + SD:  3.65939718710547"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life", "biome_name", "herbaceous_wetland", "temperature_annual_average", "shrubs", "temperature_monthly_min", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "share_of_population_within_400m_of_open_space", "temperature_monthly_max")])
[1] "Mean  3.61618249759617 , SD:  0.0692672194985198 , Mean + SD:  3.68544971709469"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life", "biome_name", "herbaceous_wetland", "temperature_annual_average", "shrubs", "temperature_monthly_min", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "share_of_population_within_400m_of_open_space", "temperature_monthly_max", "city_elevation_delta")])
[1] "Mean  3.63655868532768 , SD:  0.0678297596829471 , Mean + SD:  3.70438844501063"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life", "biome_name", "herbaceous_wetland", "temperature_annual_average", "shrubs", "temperature_monthly_min", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "share_of_population_within_400m_of_open_space", "temperature_monthly_max", "city_elevation_delta", "rainfall_annual_average")])
[1] "Mean  3.67696512583789 , SD:  0.0634939923748381 , Mean + SD:  3.74045911821273"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life", "biome_name", "herbaceous_wetland", "temperature_annual_average", "shrubs", "temperature_monthly_min", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "share_of_population_within_400m_of_open_space", "temperature_monthly_max", "city_elevation_delta", "rainfall_annual_average", "city_mean_elevation")])
[1] "Mean  3.67857319022986 , SD:  0.0570183020765647 , Mean + SD:  3.73559149230643"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life", "biome_name", "herbaceous_wetland", "temperature_annual_average", "shrubs", "temperature_monthly_min", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "share_of_population_within_400m_of_open_space", "temperature_monthly_max", "city_elevation_delta", "rainfall_annual_average", "city_mean_elevation", "happiness_negative_effect")])
[1] "Mean  3.68302331543985 , SD:  0.074173907354739 , Mean + SD:  3.75719722279459"
create_fifty_rows_of_oob(birdlife_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "birdlife_pool_size", "happiness_future_life", "biome_name", "herbaceous_wetland", "temperature_annual_average", "shrubs", "temperature_monthly_min", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "share_of_population_within_400m_of_open_space", "temperature_monthly_max", "city_elevation_delta", "rainfall_annual_average", "city_mean_elevation", "happiness_negative_effect", "region_20km_urban")])
[1] "Mean  3.68666059556525 , SD:  0.0710454862910919 , Mean + SD:  3.75770608185634"

“region_100km_cultivated”, “region_20km_elevation_delta”, “birdlife_pool_size”, “happiness_future_life”, “biome_name”, “herbaceous_wetland”

select_variables_from_random_forest(either_city_niche_data_fixed)
 [1] "region_100km_cultivated"                                 "region_50km_cultivated"                                  "region_20km_elevation_delta"                            
 [4] "either_pool_size"                                        "region_20km_cultivated"                                  "herbaceous_wetland"                                     
 [7] "biome_name"                                              "temperature_monthly_min"                                 "region_50km_elevation_delta"                            
[10] "city_mean_elevation"                                     "cultivated"                                              "happiness_future_life"                                  
[13] "temperature_annual_average"                              "city_gdp_per_population"                                 "shrubs"                                                 
[16] "city_elevation_delta"                                    "share_of_population_within_400m_of_open_space"           "region_100km_elevation_delta"                           
[19] "temperature_monthly_max"                                 "region_100km_urban"                                      "rainfall_monthly_min"                                   
[22] "rainfall_monthly_max"                                    "region_50km_mean_elevation"                              "region_20km_mean_elevation"                             
[25] "percentage_urban_area_as_open_public_spaces"             "mean_population_exposure_to_pm2_5_2019"                  "open_forest"                                            
[28] "region_50km_urban"                                       "realm"                                                   "city_average_pop_density"                               
[31] "happiness_positive_effect"                               "region_100km_mean_elevation"                             "rainfall_annual_average"                                
[34] "region_100km_average_pop_density"                        "closed_forest"                                           "region_50km_average_pop_density"                        
[37] "happiness_negative_effect"                               "population_growth"                                       "city_max_pop_density"                                   
[40] "permanent_water"                                         "percentage_urban_area_as_streets"                        "percentage_urban_area_as_open_public_spaces_and_streets"
[43] "herbaceous_vegetation"                                   "urban"                                                  
select_variables_from_random_forest(either_city_niche_data_fixed_single_scale)
 [1] "region_100km_cultivated"                                 "region_20km_elevation_delta"                             "either_pool_size"                                       
 [4] "cultivated"                                              "herbaceous_wetland"                                      "temperature_monthly_min"                                
 [7] "temperature_annual_average"                              "biome_name"                                              "happiness_future_life"                                  
[10] "city_elevation_delta"                                    "city_mean_elevation"                                     "city_gdp_per_population"                                
[13] "temperature_monthly_max"                                 "shrubs"                                                  "rainfall_monthly_max"                                   
[16] "share_of_population_within_400m_of_open_space"           "region_50km_mean_elevation"                              "region_100km_urban"                                     
[19] "percentage_urban_area_as_open_public_spaces"             "open_forest"                                             "rainfall_monthly_min"                                   
[22] "mean_population_exposure_to_pm2_5_2019"                  "happiness_positive_effect"                               "city_average_pop_density"                               
[25] "rainfall_annual_average"                                 "realm"                                                   "population_growth"                                      
[28] "city_max_pop_density"                                    "percentage_urban_area_as_open_public_spaces_and_streets" "herbaceous_vegetation"                                  
[31] "urban"                                                  
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated")])
[1] "Mean  5.47839397140055 , SD:  0.0428281713065628 , Mean + SD:  5.52122214270711"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta")])
[1] "Mean  5.05342072230863 , SD:  0.0746941734987245 , Mean + SD:  5.12811489580736"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size")])
[1] "Mean  4.94203335623192 , SD:  0.0571663399503317 , Mean + SD:  4.99919969618225"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated")])
[1] "Mean  4.59021498680249 , SD:  0.0718464001879054 , Mean + SD:  4.6620613869904"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland")])
[1] "Mean  4.27509360760281 , SD:  0.0661371106610057 , Mean + SD:  4.34123071826381"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min")])
[1] "Mean  4.21171943190095 , SD:  0.0645794056393035 , Mean + SD:  4.27629883754025"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average")])
[1] "Mean  4.28641440265764 , SD:  0.0614627099891406 , Mean + SD:  4.34787711264678"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average", "biome_name")])
[1] "Mean  4.23618919822712 , SD:  0.0548445818017577 , Mean + SD:  4.29103378002888"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average", "biome_name", "happiness_future_life")])
[1] "Mean  4.15066566339542 , SD:  0.0644687882920083 , Mean + SD:  4.21513445168743"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average", "biome_name", "happiness_future_life", "city_elevation_delta")])
[1] "Mean  4.14640207833858 , SD:  0.0705190195642546 , Mean + SD:  4.21692109790283"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average", "biome_name", "happiness_future_life", "city_elevation_delta", "city_mean_elevation")])
[1] "Mean  4.07030645833854 , SD:  0.0667827729649328 , Mean + SD:  4.13708923130347"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average", "biome_name", "happiness_future_life", "city_elevation_delta", "city_mean_elevation", "city_gdp_per_population")])
[1] "Mean  4.00101494842476 , SD:  0.0710341509145194 , Mean + SD:  4.07204909933928"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average", "biome_name", "happiness_future_life", "city_elevation_delta", "city_mean_elevation", "city_gdp_per_population", "temperature_monthly_max")])
[1] "Mean  4.03830493077006 , SD:  0.0715126350934185 , Mean + SD:  4.10981756586348"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average", "biome_name", "happiness_future_life", "city_elevation_delta", "city_mean_elevation", "city_gdp_per_population", "temperature_monthly_max", "shrubs")])
[1] "Mean  4.03422891144653 , SD:  0.0570291338854217 , Mean + SD:  4.09125804533196"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average", "biome_name", "happiness_future_life", "city_elevation_delta", "city_mean_elevation", "city_gdp_per_population", "temperature_monthly_max", "shrubs", "rainfall_monthly_max")])
[1] "Mean  4.05696327010979 , SD:  0.0655155247424855 , Mean + SD:  4.12247879485227"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average", "biome_name", "happiness_future_life", "city_elevation_delta", "city_mean_elevation", "city_gdp_per_population", "temperature_monthly_max", "shrubs", "rainfall_monthly_max", "share_of_population_within_400m_of_open_space")])
[1] "Mean  4.0512495472162 , SD:  0.0706656194437637 , Mean + SD:  4.12191516665996"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average", "biome_name", "happiness_future_life", "city_elevation_delta", "city_mean_elevation", "city_gdp_per_population", "temperature_monthly_max", "shrubs", "rainfall_monthly_max", "share_of_population_within_400m_of_open_space", "region_50km_mean_elevation")])
[1] "Mean  4.05618548495902 , SD:  0.058518977036564 , Mean + SD:  4.11470446199558"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average", "biome_name", "happiness_future_life", "city_elevation_delta", "city_mean_elevation", "city_gdp_per_population", "temperature_monthly_max", "shrubs", "rainfall_monthly_max", "share_of_population_within_400m_of_open_space", "region_50km_mean_elevation", "region_100km_urban")])
[1] "Mean  4.02195820758833 , SD:  0.0753422076360216 , Mean + SD:  4.09730041522435"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average", "biome_name", "happiness_future_life", "city_elevation_delta", "city_mean_elevation", "city_gdp_per_population", "temperature_monthly_max", "shrubs", "rainfall_monthly_max", "share_of_population_within_400m_of_open_space", "region_50km_mean_elevation", "region_100km_urban", "percentage_urban_area_as_open_public_spaces")])
[1] "Mean  4.06331944292818 , SD:  0.0589151462504439 , Mean + SD:  4.12223458917862"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average", "biome_name", "happiness_future_life", "city_elevation_delta", "city_mean_elevation", "city_gdp_per_population", "temperature_monthly_max", "shrubs", "rainfall_monthly_max", "share_of_population_within_400m_of_open_space", "region_50km_mean_elevation", "region_100km_urban", "percentage_urban_area_as_open_public_spaces", "open_forest")])
[1] "Mean  4.08573713674715 , SD:  0.0721002310687971 , Mean + SD:  4.15783736781595"
create_fifty_rows_of_oob(either_city_niche_data_fixed[,c("response", "region_100km_cultivated", "region_20km_elevation_delta", "either_pool_size", "cultivated", "herbaceous_wetland", "temperature_monthly_min", "temperature_annual_average", "biome_name", "happiness_future_life", "city_elevation_delta", "city_mean_elevation", "city_gdp_per_population", "temperature_monthly_max", "shrubs", "rainfall_monthly_max", "share_of_population_within_400m_of_open_space", "region_50km_mean_elevation", "region_100km_urban", "percentage_urban_area_as_open_public_spaces", "open_forest", "rainfall_monthly_min")])
[1] "Mean  4.08949195449016 , SD:  0.0599449818742405 , Mean + SD:  4.1494369363644"

“region_100km_cultivated”, “region_20km_elevation_delta”, “either_pool_size”, “cultivated”, “herbaceous_wetland”, “temperature_monthly_min”, “temperature_annual_average”, “biome_name”, “happiness_future_life”, “city_elevation_delta”, “city_mean_elevation”, “city_gdp_per_population”

both_city_niche_data <- fetch_city_niche_data_for('both')

── Column specification ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
cols(
  name = col_character(),
  response = col_double()
)

Joining, by = "name"
both_city_niche_data
both_city_niche_data_fixed <- rfImpute(response ~ ., both_city_niche_data)
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |    7.417    94.67 |
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |    7.665    97.84 |
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |    7.487    95.57 |
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |    7.514    95.91 |
     |      Out-of-bag   |
Tree |      MSE  %Var(y) |
 300 |    7.189    91.77 |
both_city_niche_data_fixed
select_variables_from_random_forest(both_city_niche_data_fixed)
 [1] "region_100km_cultivated"                                 "temperature_monthly_min"                                 "region_50km_cultivated"                                 
 [4] "region_20km_elevation_delta"                             "both_pool_size"                                          "region_50km_elevation_delta"                            
 [7] "city_elevation_delta"                                    "rainfall_annual_average"                                 "percentage_urban_area_as_open_public_spaces"            
[10] "region_20km_cultivated"                                  "rainfall_monthly_max"                                    "shrubs"                                                 
[13] "percentage_urban_area_as_streets"                        "biome_name"                                              "temperature_annual_average"                             
[16] "happiness_future_life"                                   "city_mean_elevation"                                     "region_100km_elevation_delta"                           
[19] "region_50km_urban"                                       "cultivated"                                              "closed_forest"                                          
[22] "region_20km_urban"                                       "share_of_population_within_400m_of_open_space"           "herbaceous_wetland"                                     
[25] "happiness_negative_effect"                               "region_50km_mean_elevation"                              "open_forest"                                            
[28] "temperature_monthly_max"                                 "region_100km_urban"                                      "region_20km_mean_elevation"                             
[31] "herbaceous_vegetation"                                   "city_average_pop_density"                                "city_gdp_per_population"                                
[34] "happiness_positive_effect"                               "rainfall_monthly_min"                                    "mean_population_exposure_to_pm2_5_2019"                 
[37] "percentage_urban_area_as_open_public_spaces_and_streets" "permanent_water"                                         "urban"                                                  
[40] "region_100km_average_pop_density"                        "region_20km_average_pop_density"                         "region_100km_mean_elevation"                            
[43] "region_50km_average_pop_density"                         "population_growth"                                       "city_max_pop_density"                                   
[46] "realm"                                                  
select_variables_from_random_forest(both_city_niche_data_fixed_single_scale)
 [1] "region_100km_cultivated"                                 "both_pool_size"                                          "temperature_monthly_min"                                
 [4] "region_20km_elevation_delta"                             "city_elevation_delta"                                    "rainfall_annual_average"                                
 [7] "rainfall_monthly_max"                                    "percentage_urban_area_as_open_public_spaces"             "temperature_annual_average"                             
[10] "biome_name"                                              "happiness_future_life"                                   "shrubs"                                                 
[13] "percentage_urban_area_as_streets"                        "cultivated"                                              "region_50km_urban"                                      
[16] "city_mean_elevation"                                     "closed_forest"                                           "herbaceous_wetland"                                     
[19] "happiness_negative_effect"                               "share_of_population_within_400m_of_open_space"           "temperature_monthly_max"                                
[22] "open_forest"                                             "city_average_pop_density"                                "herbaceous_vegetation"                                  
[25] "mean_population_exposure_to_pm2_5_2019"                  "happiness_positive_effect"                               "region_50km_mean_elevation"                             
[28] "rainfall_monthly_min"                                    "percentage_urban_area_as_open_public_spaces_and_streets" "urban"                                                  
[31] "region_100km_average_pop_density"                        "population_growth"                                       "city_max_pop_density"                                   
[34] "realm"                                                  
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated")])
[1] "Mean  7.89974031313127 , SD:  0.0798297471087301 , Mean + SD:  7.97957006024"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size")])
[1] "Mean  7.84200259775259 , SD:  0.130631478885126 , Mean + SD:  7.97263407663772"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min")])
[1] "Mean  7.43699623508042 , SD:  0.119837524694346 , Mean + SD:  7.55683375977477"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta")])
[1] "Mean  7.23579107124848 , SD:  0.123613064510451 , Mean + SD:  7.35940413575894"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta")])
[1] "Mean  7.05337203570387 , SD:  0.113312350336365 , Mean + SD:  7.16668438604024"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average")])
[1] "Mean  7.31525919898467 , SD:  0.123982967537266 , Mean + SD:  7.43924216652194"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max")])
[1] "Mean  7.24103640359564 , SD:  0.101804530106879 , Mean + SD:  7.34284093370252"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces")])
[1] "Mean  7.1175442871678 , SD:  0.117921741421446 , Mean + SD:  7.23546602858925"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "temperature_annual_average")])
[1] "Mean  7.07490875026318 , SD:  0.120627196895919 , Mean + SD:  7.1955359471591"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "temperature_annual_average", "biome_name")])
[1] "Mean  7.13767809433254 , SD:  0.119982229541574 , Mean + SD:  7.25766032387412"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "temperature_annual_average", "biome_name", "happiness_future_life")])
[1] "Mean  7.02628026731596 , SD:  0.120857576790716 , Mean + SD:  7.14713784410668"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "temperature_annual_average", "biome_name", "happiness_future_life", "shrubs")])
[1] "Mean  7.00230947783711 , SD:  0.12470886455917 , Mean + SD:  7.12701834239628"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "temperature_annual_average", "biome_name", "happiness_future_life", "shrubs", "percentage_urban_area_as_streets")])
[1] "Mean  7.08562802954228 , SD:  0.104552312634745 , Mean + SD:  7.19018034217702"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "temperature_annual_average", "biome_name", "happiness_future_life", "shrubs", "percentage_urban_area_as_streets", "cultivated")])
[1] "Mean  7.00513864532854 , SD:  0.112554636288927 , Mean + SD:  7.11769328161746"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "temperature_annual_average", "biome_name", "happiness_future_life", "shrubs", "percentage_urban_area_as_streets", "cultivated", "region_50km_urban")])
[1] "Mean  6.96287993217581 , SD:  0.109890720881233 , Mean + SD:  7.07277065305704"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "temperature_annual_average", "biome_name", "happiness_future_life", "shrubs", "percentage_urban_area_as_streets", "cultivated", "region_50km_urban", "city_mean_elevation")])
[1] "Mean  6.94249024014476 , SD:  0.133225982636121 , Mean + SD:  7.07571622278088"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "temperature_annual_average", "biome_name", "happiness_future_life", "shrubs", "percentage_urban_area_as_streets", "cultivated", "region_50km_urban", "city_mean_elevation", "closed_forest")])
[1] "Mean  6.98552556448999 , SD:  0.106651887371854 , Mean + SD:  7.09217745186185"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "temperature_annual_average", "biome_name", "happiness_future_life", "shrubs", "percentage_urban_area_as_streets", "cultivated", "region_50km_urban", "city_mean_elevation", "closed_forest", "herbaceous_wetland")])
[1] "Mean  6.93603304672847 , SD:  0.110718406224751 , Mean + SD:  7.04675145295322"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "temperature_annual_average", "biome_name", "happiness_future_life", "shrubs", "percentage_urban_area_as_streets", "cultivated", "region_50km_urban", "city_mean_elevation", "closed_forest", "herbaceous_wetland", "happiness_negative_effect")])
[1] "Mean  6.94189353817021 , SD:  0.108959461997887 , Mean + SD:  7.0508530001681"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "temperature_annual_average", "biome_name", "happiness_future_life", "shrubs", "percentage_urban_area_as_streets", "cultivated", "region_50km_urban", "city_mean_elevation", "closed_forest", "herbaceous_wetland", "happiness_negative_effect", "share_of_population_within_400m_of_open_space")])
[1] "Mean  6.97285898270068 , SD:  0.123369469358957 , Mean + SD:  7.09622845205964"
create_fifty_rows_of_oob(both_city_niche_data_fixed[,c("response", "region_100km_cultivated", "both_pool_size", "temperature_monthly_min", "region_20km_elevation_delta", "city_elevation_delta", "rainfall_annual_average", "rainfall_monthly_max", "percentage_urban_area_as_open_public_spaces", "temperature_annual_average", "biome_name", "happiness_future_life", "shrubs", "percentage_urban_area_as_streets", "cultivated", "region_50km_urban", "city_mean_elevation", "closed_forest", "herbaceous_wetland", "happiness_negative_effect", "share_of_population_within_400m_of_open_space", "temperature_monthly_max")])
[1] "Mean  6.99293124494808 , SD:  0.115407935480152 , Mean + SD:  7.10833918042823"

“region_100km_cultivated”, “both_pool_size”, “temperature_monthly_min”, “region_20km_elevation_delta”, “city_elevation_delta”

So….

“merlin_pool_size”, “region_100km_cultivated”, “region_20km_elevation_delta”, “city_elevation_delta” “region_100km_cultivated”, “region_20km_elevation_delta”, “birdlife_pool_size”, “happiness_future_life”, “biome_name”, “herbaceous_wetland” “region_100km_cultivated”, “region_20km_elevation_delta”, “either_pool_size”, “cultivated”, “herbaceous_wetland”, “temperature_monthly_min”, “temperature_annual_average”, “biome_name”, “happiness_future_life”, “city_elevation_delta”, “city_mean_elevation”, “city_gdp_per_population” “region_100km_cultivated”, “both_pool_size”, “temperature_monthly_min”, “region_20km_elevation_delta”, “city_elevation_delta”

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQpSdW4gYGRvd25sb2FkX2RhdGEuUm1kYCBhbmQgYG5pY2hlX3Jlc2lsaWFuY2UuUm1kYCBGaXJzdCEKCmBgYHtyfQpsaWJyYXJ5KHJhbmRvbUZvcmVzdCkKbGlicmFyeShyZXNoYXBlMikKbGlicmFyeShycGFydCkKYGBgCgpgYGB7cn0KY2l0eV9kYXRhCmBgYAoKYGBge3J9CmZldGNoX2NpdHlfbmljaGVfZGF0YV9mb3IgPC0gZnVuY3Rpb24ocG9vbF9uYW1lKSB7CiAgcmVzdWx0c19maWxlbmFtZSA8LSBwYXN0ZShwYXN0ZShwb29sX25hbWUsICdjaXR5JywgJ25pY2hlJywgJ3Jlc2lsaWVuY2UnLCAnaW50ZXJjZXB0Jywgc2VwID0gIl8iKSwgImNzdiIsIHNlcCA9ICIuIikKICByZXN1bHRzIDwtIHJlYWRfY3N2KHJlc3VsdHNfZmlsZW5hbWUpCiAgCiAgam9pbmVkIDwtIGxlZnRfam9pbihjaXR5X2RhdGEsIHJlc3VsdHMpCiAgCiAgcG9vbF9zaXplX2NvbF9uYW1lIDwtIHBhc3RlKHBvb2xfbmFtZSwgJ3Bvb2wnLCAnc2l6ZScsIHNlcCA9ICJfIikKICAKICBqb2luZWRbLGMoInJlc3BvbnNlIiwgcG9vbF9zaXplX2NvbF9uYW1lLCAicG9wdWxhdGlvbl9ncm93dGgiLCAicmFpbmZhbGxfbW9udGhseV9taW4iLCAicmFpbmZhbGxfYW5udWFsX2F2ZXJhZ2UiLCAicmFpbmZhbGxfbW9udGhseV9tYXgiLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAidGVtcGVyYXR1cmVfbW9udGhseV9tYXgiLCAiaGFwcGluZXNzX25lZ2F0aXZlX2VmZmVjdCIsICJoYXBwaW5lc3NfcG9zaXRpdmVfZWZmZWN0IiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJudW1iZXJfb2ZfYmlvbWVzIiwgInJlYWxtIiwgImJpb21lX25hbWUiLCAicmVnaW9uXzIwa21faW5jbHVkZXNfZXN0dWFyeSIsICJyZWdpb25fNTBrbV9pbmNsdWRlc19lc3R1YXJ5IiwgInJlZ2lvbl8xMDBrbV9pbmNsdWRlc19lc3R1YXJ5IiwgImNpdHlfaW5jbHVkZXNfZXN0dWFyeSIsICJyZWdpb25fMjBrbV9hdmVyYWdlX3BvcF9kZW5zaXR5IiwgInJlZ2lvbl81MGttX2F2ZXJhZ2VfcG9wX2RlbnNpdHkiLCAicmVnaW9uXzEwMGttX2F2ZXJhZ2VfcG9wX2RlbnNpdHkiLCAiY2l0eV9tYXhfcG9wX2RlbnNpdHkiLCAiY2l0eV9hdmVyYWdlX3BvcF9kZW5zaXR5IiwgIm1lYW5fcG9wdWxhdGlvbl9leHBvc3VyZV90b19wbTJfNV8yMDE5IiwgInJlZ2lvbl8yMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fdXJiYW4iLCAicmVnaW9uXzUwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fNTBrbV91cmJhbiIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMTAwa21fdXJiYW4iLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgInJlZ2lvbl8yMGttX21lYW5fZWxldmF0aW9uIiwgInJlZ2lvbl81MGttX2VsZXZhdGlvbl9kZWx0YSIsICJyZWdpb25fNTBrbV9tZWFuX2VsZXZhdGlvbiIsICJyZWdpb25fMTAwa21fZWxldmF0aW9uX2RlbHRhIiwgInJlZ2lvbl8xMDBrbV9tZWFuX2VsZXZhdGlvbiIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X21lYW5fZWxldmF0aW9uIiwgInVyYmFuIiwgInNocnVicyIsICJwZXJtYW5lbnRfd2F0ZXIiLCAib3Blbl9mb3Jlc3QiLCAiaGVyYmFjZW91c193ZXRsYW5kIiwgImhlcmJhY2VvdXNfdmVnZXRhdGlvbiIsICJjdWx0aXZhdGVkIiwgImNsb3NlZF9mb3Jlc3QiLCAic2hhcmVfb2ZfcG9wdWxhdGlvbl93aXRoaW5fNDAwbV9vZl9vcGVuX3NwYWNlIiwgInBlcmNlbnRhZ2VfdXJiYW5fYXJlYV9hc19zdHJlZXRzIiwgInBlcmNlbnRhZ2VfdXJiYW5fYXJlYV9hc19vcGVuX3B1YmxpY19zcGFjZXNfYW5kX3N0cmVldHMiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX29wZW5fcHVibGljX3NwYWNlcyIsICJjaXR5X2dkcF9wZXJfcG9wdWxhdGlvbiIpXQp9CmBgYAoKCmBgYHtyfQptZXJsaW5fY2l0eV9uaWNoZV9kYXRhIDwtIGZldGNoX2NpdHlfbmljaGVfZGF0YV9mb3IoJ21lcmxpbicpCm1lcmxpbl9jaXR5X25pY2hlX2RhdGEKYGBgCgoKCmBgYHtyfQptZXJsaW5fY2l0eV9uaWNoZV9kYXRhX2ZpeGVkIDwtIHJmSW1wdXRlKHJlc3BvbnNlIH4gLiwgbWVybGluX2NpdHlfbmljaGVfZGF0YSkKbWVybGluX2NpdHlfbmljaGVfZGF0YV9maXhlZApgYGAKCgpgYGB7cn0Kc291cmNlKCcuL3JhbmRvbV9mb3Jlc3Rfc2VsZWN0aW9uX2Z1bmN0aW9ucy5SJykKYGBgCgpgYGB7cn0Kc2VsZWN0X3ZhcmlhYmxlc19mcm9tX3JhbmRvbV9mb3Jlc3QobWVybGluX2NpdHlfbmljaGVfZGF0YV9maXhlZCkKYGBgCgpgYGB7cn0KZXhjbHVkZV9tZXJsaW5fbmljaGUgPC0gIW5hbWVzKG1lcmxpbl9jaXR5X25pY2hlX2RhdGFfZml4ZWQpICVpbiUgYygKICAicmVnaW9uXzUwa21fdXJiYW4iLCAicmVnaW9uXzIwa21fdXJiYW4iLAogICJyZWdpb25fNTBrbV9lbGV2YXRpb25fZGVsdGEiLCAicmVnaW9uXzEwMGttX2VsZXZhdGlvbl9kZWx0YSIsIAogICJyZWdpb25fNTBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2N1bHRpdmF0ZWQiLCAKICAicmVnaW9uXzIwa21fYXZlcmFnZV9wb3BfZGVuc2l0eSIsICJyZWdpb25fNTBrbV9hdmVyYWdlX3BvcF9kZW5zaXR5IiwgCiAgInJlZ2lvbl8yMGttX2luY2x1ZGVzX2VzdHVhcnkiLCAicmVnaW9uXzUwa21faW5jbHVkZXNfZXN0dWFyeSIsICJyZWdpb25fMTAwa21faW5jbHVkZXNfZXN0dWFyeSIsIAogICJyZWdpb25fMTAwa21fbWVhbl9lbGV2YXRpb24iLCAicmVnaW9uXzIwa21fbWVhbl9lbGV2YXRpb24iKQoKbWVybGluX2NpdHlfbmljaGVfZGF0YV9maXhlZF9zaW5nbGVfc2NhbGUgPC0gbWVybGluX2NpdHlfbmljaGVfZGF0YV9maXhlZFssZXhjbHVkZV9tZXJsaW5fbmljaGVdCm1lcmxpbl9jaXR5X25pY2hlX2RhdGFfZml4ZWRfc2luZ2xlX3NjYWxlCmBgYApgYGB7cn0Kc2VsZWN0X3ZhcmlhYmxlc19mcm9tX3JhbmRvbV9mb3Jlc3QobWVybGluX2NpdHlfbmljaGVfZGF0YV9maXhlZF9zaW5nbGVfc2NhbGUpCmBgYAoKCmBgYHtyfQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IobWVybGluX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAibWVybGluX3Bvb2xfc2l6ZSIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKG1lcmxpbl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgIm1lcmxpbl9wb29sX3NpemUiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihtZXJsaW5fY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJtZXJsaW5fcG9vbF9zaXplIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKG1lcmxpbl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgIm1lcmxpbl9wb29sX3NpemUiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IobWVybGluX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAibWVybGluX3Bvb2xfc2l6ZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihtZXJsaW5fY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJtZXJsaW5fcG9vbF9zaXplIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJyYWluZmFsbF9hbm51YWxfYXZlcmFnZSIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKG1lcmxpbl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgIm1lcmxpbl9wb29sX3NpemUiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJhaW5mYWxsX2FubnVhbF9hdmVyYWdlIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihtZXJsaW5fY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJtZXJsaW5fcG9vbF9zaXplIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJyYWluZmFsbF9hbm51YWxfYXZlcmFnZSIsICJjaXR5X21lYW5fZWxldmF0aW9uIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IobWVybGluX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAibWVybGluX3Bvb2xfc2l6ZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAicmFpbmZhbGxfYW5udWFsX2F2ZXJhZ2UiLCAiY2l0eV9tZWFuX2VsZXZhdGlvbiIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJoZXJiYWNlb3VzX3ZlZ2V0YXRpb24iKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihtZXJsaW5fY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJtZXJsaW5fcG9vbF9zaXplIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJyYWluZmFsbF9hbm51YWxfYXZlcmFnZSIsICJjaXR5X21lYW5fZWxldmF0aW9uIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImhlcmJhY2VvdXNfdmVnZXRhdGlvbiIsICJyYWluZmFsbF9tb250aGx5X21heCIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKG1lcmxpbl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgIm1lcmxpbl9wb29sX3NpemUiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJhaW5mYWxsX2FubnVhbF9hdmVyYWdlIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAiaGVyYmFjZW91c192ZWdldGF0aW9uIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IiwgInBlcmNlbnRhZ2VfdXJiYW5fYXJlYV9hc19vcGVuX3B1YmxpY19zcGFjZXMiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihtZXJsaW5fY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJtZXJsaW5fcG9vbF9zaXplIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJyYWluZmFsbF9hbm51YWxfYXZlcmFnZSIsICJjaXR5X21lYW5fZWxldmF0aW9uIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImhlcmJhY2VvdXNfdmVnZXRhdGlvbiIsICJyYWluZmFsbF9tb250aGx5X21heCIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfb3Blbl9wdWJsaWNfc3BhY2VzIiwgInBvcHVsYXRpb25fZ3Jvd3RoIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IobWVybGluX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAibWVybGluX3Bvb2xfc2l6ZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAicmFpbmZhbGxfYW5udWFsX2F2ZXJhZ2UiLCAiY2l0eV9tZWFuX2VsZXZhdGlvbiIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJoZXJiYWNlb3VzX3ZlZ2V0YXRpb24iLCAicmFpbmZhbGxfbW9udGhseV9tYXgiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX29wZW5fcHVibGljX3NwYWNlcyIsICJwb3B1bGF0aW9uX2dyb3d0aCIsICJyZWdpb25fNTBrbV9tZWFuX2VsZXZhdGlvbiIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKG1lcmxpbl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgIm1lcmxpbl9wb29sX3NpemUiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJhaW5mYWxsX2FubnVhbF9hdmVyYWdlIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAiaGVyYmFjZW91c192ZWdldGF0aW9uIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IiwgInBlcmNlbnRhZ2VfdXJiYW5fYXJlYV9hc19vcGVuX3B1YmxpY19zcGFjZXMiLCAicG9wdWxhdGlvbl9ncm93dGgiLCAicmVnaW9uXzUwa21fbWVhbl9lbGV2YXRpb24iLCAiY2l0eV9nZHBfcGVyX3BvcHVsYXRpb24iKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihtZXJsaW5fY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJtZXJsaW5fcG9vbF9zaXplIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJyYWluZmFsbF9hbm51YWxfYXZlcmFnZSIsICJjaXR5X21lYW5fZWxldmF0aW9uIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImhlcmJhY2VvdXNfdmVnZXRhdGlvbiIsICJyYWluZmFsbF9tb250aGx5X21heCIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfb3Blbl9wdWJsaWNfc3BhY2VzIiwgInBvcHVsYXRpb25fZ3Jvd3RoIiwgInJlZ2lvbl81MGttX21lYW5fZWxldmF0aW9uIiwgImNpdHlfZ2RwX3Blcl9wb3B1bGF0aW9uIiwgInJlZ2lvbl8xMDBrbV91cmJhbiIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKG1lcmxpbl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgIm1lcmxpbl9wb29sX3NpemUiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJhaW5mYWxsX2FubnVhbF9hdmVyYWdlIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAiaGVyYmFjZW91c192ZWdldGF0aW9uIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IiwgInBlcmNlbnRhZ2VfdXJiYW5fYXJlYV9hc19vcGVuX3B1YmxpY19zcGFjZXMiLCAicG9wdWxhdGlvbl9ncm93dGgiLCAicmVnaW9uXzUwa21fbWVhbl9lbGV2YXRpb24iLCAiY2l0eV9nZHBfcGVyX3BvcHVsYXRpb24iLCAicmVnaW9uXzEwMGttX3VyYmFuIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKG1lcmxpbl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgIm1lcmxpbl9wb29sX3NpemUiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJhaW5mYWxsX2FubnVhbF9hdmVyYWdlIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAiaGVyYmFjZW91c192ZWdldGF0aW9uIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IiwgInBlcmNlbnRhZ2VfdXJiYW5fYXJlYV9hc19vcGVuX3B1YmxpY19zcGFjZXMiLCAicG9wdWxhdGlvbl9ncm93dGgiLCAicmVnaW9uXzUwa21fbWVhbl9lbGV2YXRpb24iLCAiY2l0eV9nZHBfcGVyX3BvcHVsYXRpb24iLCAicmVnaW9uXzEwMGttX3VyYmFuIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJzaGFyZV9vZl9wb3B1bGF0aW9uX3dpdGhpbl80MDBtX29mX29wZW5fc3BhY2UiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihtZXJsaW5fY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJtZXJsaW5fcG9vbF9zaXplIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJyYWluZmFsbF9hbm51YWxfYXZlcmFnZSIsICJjaXR5X21lYW5fZWxldmF0aW9uIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImhlcmJhY2VvdXNfdmVnZXRhdGlvbiIsICJyYWluZmFsbF9tb250aGx5X21heCIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfb3Blbl9wdWJsaWNfc3BhY2VzIiwgInBvcHVsYXRpb25fZ3Jvd3RoIiwgInJlZ2lvbl81MGttX21lYW5fZWxldmF0aW9uIiwgImNpdHlfZ2RwX3Blcl9wb3B1bGF0aW9uIiwgInJlZ2lvbl8xMDBrbV91cmJhbiIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAic2hhcmVfb2ZfcG9wdWxhdGlvbl93aXRoaW5fNDAwbV9vZl9vcGVuX3NwYWNlIiwgImhhcHBpbmVzc19wb3NpdGl2ZV9lZmZlY3QiKV0pCmBgYAoKIm1lcmxpbl9wb29sX3NpemUiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIgoKYGBge3J9CmJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YSA8LSBmZXRjaF9jaXR5X25pY2hlX2RhdGFfZm9yKCdiaXJkbGlmZScpCmJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YQpgYGAKCmBgYHtyfQpiaXJkbGlmZV9jaXR5X25pY2hlX2RhdGFfZml4ZWQgPC0gcmZJbXB1dGUocmVzcG9uc2UgfiAuLCBiaXJkbGlmZV9jaXR5X25pY2hlX2RhdGEpCmJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YV9maXhlZApgYGAKCmBgYHtyfQpzZWxlY3RfdmFyaWFibGVzX2Zyb21fcmFuZG9tX2ZvcmVzdChiaXJkbGlmZV9jaXR5X25pY2hlX2RhdGFfZml4ZWQpCmBgYAoKYGBge3J9CmV4Y2x1ZGVfYmlyZGxpZmVfbmljaGUgPC0gIW5hbWVzKGJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YV9maXhlZCkgJWluJSBjKAogICJyZWdpb25fNTBrbV91cmJhbiIsICJyZWdpb25fMTAwa21fdXJiYW4iLAogICJyZWdpb25fNTBrbV9lbGV2YXRpb25fZGVsdGEiLCAicmVnaW9uXzEwMGttX2VsZXZhdGlvbl9kZWx0YSIsIAogICJyZWdpb25fNTBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2N1bHRpdmF0ZWQiLCAKICAicmVnaW9uXzIwa21fYXZlcmFnZV9wb3BfZGVuc2l0eSIsICJyZWdpb25fNTBrbV9hdmVyYWdlX3BvcF9kZW5zaXR5IiwgCiAgInJlZ2lvbl8yMGttX2luY2x1ZGVzX2VzdHVhcnkiLCAicmVnaW9uXzUwa21faW5jbHVkZXNfZXN0dWFyeSIsICJyZWdpb25fMTAwa21faW5jbHVkZXNfZXN0dWFyeSIsIAogICJyZWdpb25fMTAwa21fbWVhbl9lbGV2YXRpb24iLCAicmVnaW9uXzIwa21fbWVhbl9lbGV2YXRpb24iKQoKYmlyZGxpZmVfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkX3NpbmdsZV9zY2FsZSA8LSBiaXJkbGlmZV9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGV4Y2x1ZGVfYmlyZGxpZmVfbmljaGVdCmJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YV9maXhlZF9zaW5nbGVfc2NhbGUKYGBgCmBgYHtyfQpzZWxlY3RfdmFyaWFibGVzX2Zyb21fcmFuZG9tX2ZvcmVzdChiaXJkbGlmZV9jaXR5X25pY2hlX2RhdGFfZml4ZWRfc2luZ2xlX3NjYWxlKQpgYGAKCmBgYHtyfQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYmlyZGxpZmVfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYmlyZGxpZmVfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiYmlyZGxpZmVfcG9vbF9zaXplIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYmlyZGxpZmVfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiYmlyZGxpZmVfcG9vbF9zaXplIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImJpcmRsaWZlX3Bvb2xfc2l6ZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAiYmlvbWVfbmFtZSIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImJpcmRsaWZlX3Bvb2xfc2l6ZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAiYmlvbWVfbmFtZSIsICJoZXJiYWNlb3VzX3dldGxhbmQiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihiaXJkbGlmZV9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJiaXJkbGlmZV9wb29sX3NpemUiLCAiaGFwcGluZXNzX2Z1dHVyZV9saWZlIiwgImJpb21lX25hbWUiLCAiaGVyYmFjZW91c193ZXRsYW5kIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYmlyZGxpZmVfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiYmlyZGxpZmVfcG9vbF9zaXplIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJiaW9tZV9uYW1lIiwgImhlcmJhY2VvdXNfd2V0bGFuZCIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJzaHJ1YnMiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihiaXJkbGlmZV9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJiaXJkbGlmZV9wb29sX3NpemUiLCAiaGFwcGluZXNzX2Z1dHVyZV9saWZlIiwgImJpb21lX25hbWUiLCAiaGVyYmFjZW91c193ZXRsYW5kIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgInNocnVicyIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImJpcmRsaWZlX3Bvb2xfc2l6ZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAiYmlvbWVfbmFtZSIsICJoZXJiYWNlb3VzX3dldGxhbmQiLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAic2hydWJzIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYmlyZGxpZmVfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiYmlyZGxpZmVfcG9vbF9zaXplIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJiaW9tZV9uYW1lIiwgImhlcmJhY2VvdXNfd2V0bGFuZCIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJzaHJ1YnMiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAicmFpbmZhbGxfbW9udGhseV9tYXgiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX29wZW5fcHVibGljX3NwYWNlcyIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImJpcmRsaWZlX3Bvb2xfc2l6ZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAiYmlvbWVfbmFtZSIsICJoZXJiYWNlb3VzX3dldGxhbmQiLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAic2hydWJzIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IiwgInBlcmNlbnRhZ2VfdXJiYW5fYXJlYV9hc19vcGVuX3B1YmxpY19zcGFjZXMiLCAic2hhcmVfb2ZfcG9wdWxhdGlvbl93aXRoaW5fNDAwbV9vZl9vcGVuX3NwYWNlIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYmlyZGxpZmVfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiYmlyZGxpZmVfcG9vbF9zaXplIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJiaW9tZV9uYW1lIiwgImhlcmJhY2VvdXNfd2V0bGFuZCIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJzaHJ1YnMiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAicmFpbmZhbGxfbW9udGhseV9tYXgiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX29wZW5fcHVibGljX3NwYWNlcyIsICJzaGFyZV9vZl9wb3B1bGF0aW9uX3dpdGhpbl80MDBtX29mX29wZW5fc3BhY2UiLCAidGVtcGVyYXR1cmVfbW9udGhseV9tYXgiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihiaXJkbGlmZV9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJiaXJkbGlmZV9wb29sX3NpemUiLCAiaGFwcGluZXNzX2Z1dHVyZV9saWZlIiwgImJpb21lX25hbWUiLCAiaGVyYmFjZW91c193ZXRsYW5kIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgInNocnVicyIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJyYWluZmFsbF9tb250aGx5X21heCIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfb3Blbl9wdWJsaWNfc3BhY2VzIiwgInNoYXJlX29mX3BvcHVsYXRpb25fd2l0aGluXzQwMG1fb2Zfb3Blbl9zcGFjZSIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21heCIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImJpcmRsaWZlX3Bvb2xfc2l6ZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAiYmlvbWVfbmFtZSIsICJoZXJiYWNlb3VzX3dldGxhbmQiLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAic2hydWJzIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IiwgInBlcmNlbnRhZ2VfdXJiYW5fYXJlYV9hc19vcGVuX3B1YmxpY19zcGFjZXMiLCAic2hhcmVfb2ZfcG9wdWxhdGlvbl93aXRoaW5fNDAwbV9vZl9vcGVuX3NwYWNlIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWF4IiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgInJhaW5mYWxsX2FubnVhbF9hdmVyYWdlIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYmlyZGxpZmVfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiYmlyZGxpZmVfcG9vbF9zaXplIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJiaW9tZV9uYW1lIiwgImhlcmJhY2VvdXNfd2V0bGFuZCIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJzaHJ1YnMiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAicmFpbmZhbGxfbW9udGhseV9tYXgiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX29wZW5fcHVibGljX3NwYWNlcyIsICJzaGFyZV9vZl9wb3B1bGF0aW9uX3dpdGhpbl80MDBtX29mX29wZW5fc3BhY2UiLCAidGVtcGVyYXR1cmVfbW9udGhseV9tYXgiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiLCAicmFpbmZhbGxfYW5udWFsX2F2ZXJhZ2UiLCAiY2l0eV9tZWFuX2VsZXZhdGlvbiIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImJpcmRsaWZlX3Bvb2xfc2l6ZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAiYmlvbWVfbmFtZSIsICJoZXJiYWNlb3VzX3dldGxhbmQiLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAic2hydWJzIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IiwgInBlcmNlbnRhZ2VfdXJiYW5fYXJlYV9hc19vcGVuX3B1YmxpY19zcGFjZXMiLCAic2hhcmVfb2ZfcG9wdWxhdGlvbl93aXRoaW5fNDAwbV9vZl9vcGVuX3NwYWNlIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWF4IiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgInJhaW5mYWxsX2FubnVhbF9hdmVyYWdlIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iLCAiaGFwcGluZXNzX25lZ2F0aXZlX2VmZmVjdCIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImJpcmRsaWZlX3Bvb2xfc2l6ZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAiYmlvbWVfbmFtZSIsICJoZXJiYWNlb3VzX3dldGxhbmQiLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAic2hydWJzIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IiwgInBlcmNlbnRhZ2VfdXJiYW5fYXJlYV9hc19vcGVuX3B1YmxpY19zcGFjZXMiLCAic2hhcmVfb2ZfcG9wdWxhdGlvbl93aXRoaW5fNDAwbV9vZl9vcGVuX3NwYWNlIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWF4IiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgInJhaW5mYWxsX2FubnVhbF9hdmVyYWdlIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iLCAiaGFwcGluZXNzX25lZ2F0aXZlX2VmZmVjdCIsICJyZWdpb25fMjBrbV91cmJhbiIpXSkKYGBgCgoicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImJpcmRsaWZlX3Bvb2xfc2l6ZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAiYmlvbWVfbmFtZSIsICJoZXJiYWNlb3VzX3dldGxhbmQiCgoKYGBge3J9CmVpdGhlcl9jaXR5X25pY2hlX2RhdGEgPC0gZmV0Y2hfY2l0eV9uaWNoZV9kYXRhX2ZvcignZWl0aGVyJykKZWl0aGVyX2NpdHlfbmljaGVfZGF0YQpgYGAKCmBgYHtyfQplaXRoZXJfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkIDwtIHJmSW1wdXRlKHJlc3BvbnNlIH4gLiwgZWl0aGVyX2NpdHlfbmljaGVfZGF0YSkKZWl0aGVyX2NpdHlfbmljaGVfZGF0YV9maXhlZApgYGAKCmBgYHtyfQpzZWxlY3RfdmFyaWFibGVzX2Zyb21fcmFuZG9tX2ZvcmVzdChlaXRoZXJfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkKQpgYGAKYGBge3J9CmV4Y2x1ZGVfZWl0aGVyX25pY2hlIDwtICFuYW1lcyhlaXRoZXJfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkKSAlaW4lIGMoCiAgInJlZ2lvbl81MGttX3VyYmFuIiwgInJlZ2lvbl8yMGttX3VyYmFuIiwKICAicmVnaW9uXzUwa21fZWxldmF0aW9uX2RlbHRhIiwgInJlZ2lvbl8xMDBrbV9lbGV2YXRpb25fZGVsdGEiLCAKICAicmVnaW9uXzUwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9jdWx0aXZhdGVkIiwgCiAgInJlZ2lvbl8yMGttX2F2ZXJhZ2VfcG9wX2RlbnNpdHkiLCAicmVnaW9uXzUwa21fYXZlcmFnZV9wb3BfZGVuc2l0eSIsIAogICJyZWdpb25fMjBrbV9pbmNsdWRlc19lc3R1YXJ5IiwgInJlZ2lvbl81MGttX2luY2x1ZGVzX2VzdHVhcnkiLCAicmVnaW9uXzEwMGttX2luY2x1ZGVzX2VzdHVhcnkiLCAKICAicmVnaW9uXzEwMGttX21lYW5fZWxldmF0aW9uIiwgInJlZ2lvbl8yMGttX21lYW5fZWxldmF0aW9uIikKCmVpdGhlcl9jaXR5X25pY2hlX2RhdGFfZml4ZWRfc2luZ2xlX3NjYWxlIDwtIGVpdGhlcl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGV4Y2x1ZGVfZWl0aGVyX25pY2hlXQplaXRoZXJfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkX3NpbmdsZV9zY2FsZQpgYGAKCmBgYHtyfQpzZWxlY3RfdmFyaWFibGVzX2Zyb21fcmFuZG9tX2ZvcmVzdChlaXRoZXJfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkX3NpbmdsZV9zY2FsZSkKYGBgCgpgYGB7cn0KY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGVpdGhlcl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoZWl0aGVyX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoZWl0aGVyX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImVpdGhlcl9wb29sX3NpemUiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihlaXRoZXJfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiZWl0aGVyX3Bvb2xfc2l6ZSIsICJjdWx0aXZhdGVkIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoZWl0aGVyX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImVpdGhlcl9wb29sX3NpemUiLCAiY3VsdGl2YXRlZCIsICJoZXJiYWNlb3VzX3dldGxhbmQiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihlaXRoZXJfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiZWl0aGVyX3Bvb2xfc2l6ZSIsICJjdWx0aXZhdGVkIiwgImhlcmJhY2VvdXNfd2V0bGFuZCIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGVpdGhlcl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJlaXRoZXJfcG9vbF9zaXplIiwgImN1bHRpdmF0ZWQiLCAiaGVyYmFjZW91c193ZXRsYW5kIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoZWl0aGVyX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImVpdGhlcl9wb29sX3NpemUiLCAiY3VsdGl2YXRlZCIsICJoZXJiYWNlb3VzX3dldGxhbmQiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAiYmlvbWVfbmFtZSIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGVpdGhlcl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJlaXRoZXJfcG9vbF9zaXplIiwgImN1bHRpdmF0ZWQiLCAiaGVyYmFjZW91c193ZXRsYW5kIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImJpb21lX25hbWUiLCAiaGFwcGluZXNzX2Z1dHVyZV9saWZlIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoZWl0aGVyX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImVpdGhlcl9wb29sX3NpemUiLCAiY3VsdGl2YXRlZCIsICJoZXJiYWNlb3VzX3dldGxhbmQiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAiYmlvbWVfbmFtZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihlaXRoZXJfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiZWl0aGVyX3Bvb2xfc2l6ZSIsICJjdWx0aXZhdGVkIiwgImhlcmJhY2VvdXNfd2V0bGFuZCIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJiaW9tZV9uYW1lIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X21lYW5fZWxldmF0aW9uIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoZWl0aGVyX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImVpdGhlcl9wb29sX3NpemUiLCAiY3VsdGl2YXRlZCIsICJoZXJiYWNlb3VzX3dldGxhbmQiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAiYmlvbWVfbmFtZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiLCAiY2l0eV9tZWFuX2VsZXZhdGlvbiIsICJjaXR5X2dkcF9wZXJfcG9wdWxhdGlvbiIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGVpdGhlcl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJlaXRoZXJfcG9vbF9zaXplIiwgImN1bHRpdmF0ZWQiLCAiaGVyYmFjZW91c193ZXRsYW5kIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImJpb21lX25hbWUiLCAiaGFwcGluZXNzX2Z1dHVyZV9saWZlIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iLCAiY2l0eV9nZHBfcGVyX3BvcHVsYXRpb24iLCAidGVtcGVyYXR1cmVfbW9udGhseV9tYXgiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihlaXRoZXJfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiZWl0aGVyX3Bvb2xfc2l6ZSIsICJjdWx0aXZhdGVkIiwgImhlcmJhY2VvdXNfd2V0bGFuZCIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJiaW9tZV9uYW1lIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X21lYW5fZWxldmF0aW9uIiwgImNpdHlfZ2RwX3Blcl9wb3B1bGF0aW9uIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWF4IiwgInNocnVicyIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGVpdGhlcl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJlaXRoZXJfcG9vbF9zaXplIiwgImN1bHRpdmF0ZWQiLCAiaGVyYmFjZW91c193ZXRsYW5kIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImJpb21lX25hbWUiLCAiaGFwcGluZXNzX2Z1dHVyZV9saWZlIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iLCAiY2l0eV9nZHBfcGVyX3BvcHVsYXRpb24iLCAidGVtcGVyYXR1cmVfbW9udGhseV9tYXgiLCAic2hydWJzIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoZWl0aGVyX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImVpdGhlcl9wb29sX3NpemUiLCAiY3VsdGl2YXRlZCIsICJoZXJiYWNlb3VzX3dldGxhbmQiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAiYmlvbWVfbmFtZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiLCAiY2l0eV9tZWFuX2VsZXZhdGlvbiIsICJjaXR5X2dkcF9wZXJfcG9wdWxhdGlvbiIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21heCIsICJzaHJ1YnMiLCAicmFpbmZhbGxfbW9udGhseV9tYXgiLCAic2hhcmVfb2ZfcG9wdWxhdGlvbl93aXRoaW5fNDAwbV9vZl9vcGVuX3NwYWNlIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoZWl0aGVyX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImVpdGhlcl9wb29sX3NpemUiLCAiY3VsdGl2YXRlZCIsICJoZXJiYWNlb3VzX3dldGxhbmQiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAiYmlvbWVfbmFtZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiLCAiY2l0eV9tZWFuX2VsZXZhdGlvbiIsICJjaXR5X2dkcF9wZXJfcG9wdWxhdGlvbiIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21heCIsICJzaHJ1YnMiLCAicmFpbmZhbGxfbW9udGhseV9tYXgiLCAic2hhcmVfb2ZfcG9wdWxhdGlvbl93aXRoaW5fNDAwbV9vZl9vcGVuX3NwYWNlIiwgInJlZ2lvbl81MGttX21lYW5fZWxldmF0aW9uIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoZWl0aGVyX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImVpdGhlcl9wb29sX3NpemUiLCAiY3VsdGl2YXRlZCIsICJoZXJiYWNlb3VzX3dldGxhbmQiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAiYmlvbWVfbmFtZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiLCAiY2l0eV9tZWFuX2VsZXZhdGlvbiIsICJjaXR5X2dkcF9wZXJfcG9wdWxhdGlvbiIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21heCIsICJzaHJ1YnMiLCAicmFpbmZhbGxfbW9udGhseV9tYXgiLCAic2hhcmVfb2ZfcG9wdWxhdGlvbl93aXRoaW5fNDAwbV9vZl9vcGVuX3NwYWNlIiwgInJlZ2lvbl81MGttX21lYW5fZWxldmF0aW9uIiwgInJlZ2lvbl8xMDBrbV91cmJhbiIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGVpdGhlcl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJlaXRoZXJfcG9vbF9zaXplIiwgImN1bHRpdmF0ZWQiLCAiaGVyYmFjZW91c193ZXRsYW5kIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImJpb21lX25hbWUiLCAiaGFwcGluZXNzX2Z1dHVyZV9saWZlIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iLCAiY2l0eV9nZHBfcGVyX3BvcHVsYXRpb24iLCAidGVtcGVyYXR1cmVfbW9udGhseV9tYXgiLCAic2hydWJzIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IiwgInNoYXJlX29mX3BvcHVsYXRpb25fd2l0aGluXzQwMG1fb2Zfb3Blbl9zcGFjZSIsICJyZWdpb25fNTBrbV9tZWFuX2VsZXZhdGlvbiIsICJyZWdpb25fMTAwa21fdXJiYW4iLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX29wZW5fcHVibGljX3NwYWNlcyIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGVpdGhlcl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJlaXRoZXJfcG9vbF9zaXplIiwgImN1bHRpdmF0ZWQiLCAiaGVyYmFjZW91c193ZXRsYW5kIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImJpb21lX25hbWUiLCAiaGFwcGluZXNzX2Z1dHVyZV9saWZlIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iLCAiY2l0eV9nZHBfcGVyX3BvcHVsYXRpb24iLCAidGVtcGVyYXR1cmVfbW9udGhseV9tYXgiLCAic2hydWJzIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IiwgInNoYXJlX29mX3BvcHVsYXRpb25fd2l0aGluXzQwMG1fb2Zfb3Blbl9zcGFjZSIsICJyZWdpb25fNTBrbV9tZWFuX2VsZXZhdGlvbiIsICJyZWdpb25fMTAwa21fdXJiYW4iLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX29wZW5fcHVibGljX3NwYWNlcyIsICJvcGVuX2ZvcmVzdCIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGVpdGhlcl9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJlaXRoZXJfcG9vbF9zaXplIiwgImN1bHRpdmF0ZWQiLCAiaGVyYmFjZW91c193ZXRsYW5kIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImJpb21lX25hbWUiLCAiaGFwcGluZXNzX2Z1dHVyZV9saWZlIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iLCAiY2l0eV9nZHBfcGVyX3BvcHVsYXRpb24iLCAidGVtcGVyYXR1cmVfbW9udGhseV9tYXgiLCAic2hydWJzIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IiwgInNoYXJlX29mX3BvcHVsYXRpb25fd2l0aGluXzQwMG1fb2Zfb3Blbl9zcGFjZSIsICJyZWdpb25fNTBrbV9tZWFuX2VsZXZhdGlvbiIsICJyZWdpb25fMTAwa21fdXJiYW4iLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX29wZW5fcHVibGljX3NwYWNlcyIsICJvcGVuX2ZvcmVzdCIsICJyYWluZmFsbF9tb250aGx5X21pbiIpXSkKYGBgCiJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiZWl0aGVyX3Bvb2xfc2l6ZSIsICJjdWx0aXZhdGVkIiwgImhlcmJhY2VvdXNfd2V0bGFuZCIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJiaW9tZV9uYW1lIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X21lYW5fZWxldmF0aW9uIiwgImNpdHlfZ2RwX3Blcl9wb3B1bGF0aW9uIgoKYGBge3J9CmJvdGhfY2l0eV9uaWNoZV9kYXRhIDwtIGZldGNoX2NpdHlfbmljaGVfZGF0YV9mb3IoJ2JvdGgnKQpib3RoX2NpdHlfbmljaGVfZGF0YQpgYGAKCmBgYHtyfQpib3RoX2NpdHlfbmljaGVfZGF0YV9maXhlZCA8LSByZkltcHV0ZShyZXNwb25zZSB+IC4sIGJvdGhfY2l0eV9uaWNoZV9kYXRhKQpib3RoX2NpdHlfbmljaGVfZGF0YV9maXhlZApgYGAKCmBgYHtyfQpzZWxlY3RfdmFyaWFibGVzX2Zyb21fcmFuZG9tX2ZvcmVzdChib3RoX2NpdHlfbmljaGVfZGF0YV9maXhlZCkKYGBgCgpgYGB7cn0KZXhjbHVkZV9ib3RoX25pY2hlIDwtICFuYW1lcyhib3RoX2NpdHlfbmljaGVfZGF0YV9maXhlZCkgJWluJSBjKAogICJyZWdpb25fMTAwa21fdXJiYW4iLCAicmVnaW9uXzIwa21fdXJiYW4iLAogICJyZWdpb25fNTBrbV9lbGV2YXRpb25fZGVsdGEiLCAicmVnaW9uXzEwMGttX2VsZXZhdGlvbl9kZWx0YSIsIAogICJyZWdpb25fNTBrbV9jdWx0aXZhdGVkIiwgInJlZ2lvbl8yMGttX2N1bHRpdmF0ZWQiLCAKICAicmVnaW9uXzIwa21fYXZlcmFnZV9wb3BfZGVuc2l0eSIsICJyZWdpb25fNTBrbV9hdmVyYWdlX3BvcF9kZW5zaXR5IiwgCiAgInJlZ2lvbl8yMGttX2luY2x1ZGVzX2VzdHVhcnkiLCAicmVnaW9uXzUwa21faW5jbHVkZXNfZXN0dWFyeSIsICJyZWdpb25fMTAwa21faW5jbHVkZXNfZXN0dWFyeSIsIAogICJyZWdpb25fMTAwa21fbWVhbl9lbGV2YXRpb24iLCAicmVnaW9uXzIwa21fbWVhbl9lbGV2YXRpb24iKQoKYm90aF9jaXR5X25pY2hlX2RhdGFfZml4ZWRfc2luZ2xlX3NjYWxlIDwtIGJvdGhfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxleGNsdWRlX2JvdGhfbmljaGVdCmJvdGhfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkX3NpbmdsZV9zY2FsZQpgYGAKCmBgYHtyfQpzZWxlY3RfdmFyaWFibGVzX2Zyb21fcmFuZG9tX2ZvcmVzdChib3RoX2NpdHlfbmljaGVfZGF0YV9maXhlZF9zaW5nbGVfc2NhbGUpCmBgYAoKYGBge3J9CmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihib3RoX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihib3RoX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAiYm90aF9wb29sX3NpemUiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihib3RoX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAiYm90aF9wb29sX3NpemUiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihib3RoX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAiYm90aF9wb29sX3NpemUiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYm90aF9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgImJvdGhfcG9vbF9zaXplIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGJvdGhfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJib3RoX3Bvb2xfc2l6ZSIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiLCAicmFpbmZhbGxfYW5udWFsX2F2ZXJhZ2UiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihib3RoX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAiYm90aF9wb29sX3NpemUiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgInJhaW5mYWxsX2FubnVhbF9hdmVyYWdlIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYm90aF9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgImJvdGhfcG9vbF9zaXplIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJyYWluZmFsbF9hbm51YWxfYXZlcmFnZSIsICJyYWluZmFsbF9tb250aGx5X21heCIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfb3Blbl9wdWJsaWNfc3BhY2VzIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYm90aF9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgImJvdGhfcG9vbF9zaXplIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJyYWluZmFsbF9hbm51YWxfYXZlcmFnZSIsICJyYWluZmFsbF9tb250aGx5X21heCIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfb3Blbl9wdWJsaWNfc3BhY2VzIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYm90aF9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgImJvdGhfcG9vbF9zaXplIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJyYWluZmFsbF9hbm51YWxfYXZlcmFnZSIsICJyYWluZmFsbF9tb250aGx5X21heCIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfb3Blbl9wdWJsaWNfc3BhY2VzIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImJpb21lX25hbWUiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihib3RoX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAiYm90aF9wb29sX3NpemUiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgInJhaW5mYWxsX2FubnVhbF9hdmVyYWdlIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IiwgInBlcmNlbnRhZ2VfdXJiYW5fYXJlYV9hc19vcGVuX3B1YmxpY19zcGFjZXMiLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAiYmlvbWVfbmFtZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiKV0pCmNyZWF0ZV9maWZ0eV9yb3dzX29mX29vYihib3RoX2NpdHlfbmljaGVfZGF0YV9maXhlZFssYygicmVzcG9uc2UiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAiYm90aF9wb29sX3NpemUiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIiwgInJhaW5mYWxsX2FubnVhbF9hdmVyYWdlIiwgInJhaW5mYWxsX21vbnRobHlfbWF4IiwgInBlcmNlbnRhZ2VfdXJiYW5fYXJlYV9hc19vcGVuX3B1YmxpY19zcGFjZXMiLCAidGVtcGVyYXR1cmVfYW5udWFsX2F2ZXJhZ2UiLCAiYmlvbWVfbmFtZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAic2hydWJzIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYm90aF9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgImJvdGhfcG9vbF9zaXplIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJyYWluZmFsbF9hbm51YWxfYXZlcmFnZSIsICJyYWluZmFsbF9tb250aGx5X21heCIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfb3Blbl9wdWJsaWNfc3BhY2VzIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImJpb21lX25hbWUiLCAiaGFwcGluZXNzX2Z1dHVyZV9saWZlIiwgInNocnVicyIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfc3RyZWV0cyIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGJvdGhfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJib3RoX3Bvb2xfc2l6ZSIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiLCAicmFpbmZhbGxfYW5udWFsX2F2ZXJhZ2UiLCAicmFpbmZhbGxfbW9udGhseV9tYXgiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX29wZW5fcHVibGljX3NwYWNlcyIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJiaW9tZV9uYW1lIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJzaHJ1YnMiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX3N0cmVldHMiLCAiY3VsdGl2YXRlZCIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGJvdGhfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJib3RoX3Bvb2xfc2l6ZSIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiLCAicmFpbmZhbGxfYW5udWFsX2F2ZXJhZ2UiLCAicmFpbmZhbGxfbW9udGhseV9tYXgiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX29wZW5fcHVibGljX3NwYWNlcyIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJiaW9tZV9uYW1lIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJzaHJ1YnMiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX3N0cmVldHMiLCAiY3VsdGl2YXRlZCIsICJyZWdpb25fNTBrbV91cmJhbiIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGJvdGhfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJib3RoX3Bvb2xfc2l6ZSIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiLCAicmFpbmZhbGxfYW5udWFsX2F2ZXJhZ2UiLCAicmFpbmZhbGxfbW9udGhseV9tYXgiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX29wZW5fcHVibGljX3NwYWNlcyIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJiaW9tZV9uYW1lIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJzaHJ1YnMiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX3N0cmVldHMiLCAiY3VsdGl2YXRlZCIsICJyZWdpb25fNTBrbV91cmJhbiIsICJjaXR5X21lYW5fZWxldmF0aW9uIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYm90aF9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgImJvdGhfcG9vbF9zaXplIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJyYWluZmFsbF9hbm51YWxfYXZlcmFnZSIsICJyYWluZmFsbF9tb250aGx5X21heCIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfb3Blbl9wdWJsaWNfc3BhY2VzIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImJpb21lX25hbWUiLCAiaGFwcGluZXNzX2Z1dHVyZV9saWZlIiwgInNocnVicyIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfc3RyZWV0cyIsICJjdWx0aXZhdGVkIiwgInJlZ2lvbl81MGttX3VyYmFuIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iLCAiY2xvc2VkX2ZvcmVzdCIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGJvdGhfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJib3RoX3Bvb2xfc2l6ZSIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiLCAicmFpbmZhbGxfYW5udWFsX2F2ZXJhZ2UiLCAicmFpbmZhbGxfbW9udGhseV9tYXgiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX29wZW5fcHVibGljX3NwYWNlcyIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJiaW9tZV9uYW1lIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJzaHJ1YnMiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX3N0cmVldHMiLCAiY3VsdGl2YXRlZCIsICJyZWdpb25fNTBrbV91cmJhbiIsICJjaXR5X21lYW5fZWxldmF0aW9uIiwgImNsb3NlZF9mb3Jlc3QiLCAiaGVyYmFjZW91c193ZXRsYW5kIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYm90aF9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgImJvdGhfcG9vbF9zaXplIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJyYWluZmFsbF9hbm51YWxfYXZlcmFnZSIsICJyYWluZmFsbF9tb250aGx5X21heCIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfb3Blbl9wdWJsaWNfc3BhY2VzIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImJpb21lX25hbWUiLCAiaGFwcGluZXNzX2Z1dHVyZV9saWZlIiwgInNocnVicyIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfc3RyZWV0cyIsICJjdWx0aXZhdGVkIiwgInJlZ2lvbl81MGttX3VyYmFuIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iLCAiY2xvc2VkX2ZvcmVzdCIsICJoZXJiYWNlb3VzX3dldGxhbmQiLCAiaGFwcGluZXNzX25lZ2F0aXZlX2VmZmVjdCIpXSkKY3JlYXRlX2ZpZnR5X3Jvd3Nfb2Zfb29iKGJvdGhfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkWyxjKCJyZXNwb25zZSIsICJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJib3RoX3Bvb2xfc2l6ZSIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiY2l0eV9lbGV2YXRpb25fZGVsdGEiLCAicmFpbmZhbGxfYW5udWFsX2F2ZXJhZ2UiLCAicmFpbmZhbGxfbW9udGhseV9tYXgiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX29wZW5fcHVibGljX3NwYWNlcyIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJiaW9tZV9uYW1lIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJzaHJ1YnMiLCAicGVyY2VudGFnZV91cmJhbl9hcmVhX2FzX3N0cmVldHMiLCAiY3VsdGl2YXRlZCIsICJyZWdpb25fNTBrbV91cmJhbiIsICJjaXR5X21lYW5fZWxldmF0aW9uIiwgImNsb3NlZF9mb3Jlc3QiLCAiaGVyYmFjZW91c193ZXRsYW5kIiwgImhhcHBpbmVzc19uZWdhdGl2ZV9lZmZlY3QiLCAic2hhcmVfb2ZfcG9wdWxhdGlvbl93aXRoaW5fNDAwbV9vZl9vcGVuX3NwYWNlIildKQpjcmVhdGVfZmlmdHlfcm93c19vZl9vb2IoYm90aF9jaXR5X25pY2hlX2RhdGFfZml4ZWRbLGMoInJlc3BvbnNlIiwgInJlZ2lvbl8xMDBrbV9jdWx0aXZhdGVkIiwgImJvdGhfcG9vbF9zaXplIiwgInRlbXBlcmF0dXJlX21vbnRobHlfbWluIiwgInJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJyYWluZmFsbF9hbm51YWxfYXZlcmFnZSIsICJyYWluZmFsbF9tb250aGx5X21heCIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfb3Blbl9wdWJsaWNfc3BhY2VzIiwgInRlbXBlcmF0dXJlX2FubnVhbF9hdmVyYWdlIiwgImJpb21lX25hbWUiLCAiaGFwcGluZXNzX2Z1dHVyZV9saWZlIiwgInNocnVicyIsICJwZXJjZW50YWdlX3VyYmFuX2FyZWFfYXNfc3RyZWV0cyIsICJjdWx0aXZhdGVkIiwgInJlZ2lvbl81MGttX3VyYmFuIiwgImNpdHlfbWVhbl9lbGV2YXRpb24iLCAiY2xvc2VkX2ZvcmVzdCIsICJoZXJiYWNlb3VzX3dldGxhbmQiLCAiaGFwcGluZXNzX25lZ2F0aXZlX2VmZmVjdCIsICJzaGFyZV9vZl9wb3B1bGF0aW9uX3dpdGhpbl80MDBtX29mX29wZW5fc3BhY2UiLCAidGVtcGVyYXR1cmVfbW9udGhseV9tYXgiKV0pCmBgYAoicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAiYm90aF9wb29sX3NpemUiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClNvLi4uLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIm1lcmxpbl9wb29sX3NpemUiLCAicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIgoicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImJpcmRsaWZlX3Bvb2xfc2l6ZSIsICJoYXBwaW5lc3NfZnV0dXJlX2xpZmUiLCAiYmlvbWVfbmFtZSIsICJoZXJiYWNlb3VzX3dldGxhbmQiCiJyZWdpb25fMTAwa21fY3VsdGl2YXRlZCIsICJyZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEiLCAiZWl0aGVyX3Bvb2xfc2l6ZSIsICJjdWx0aXZhdGVkIiwgImhlcmJhY2VvdXNfd2V0bGFuZCIsICJ0ZW1wZXJhdHVyZV9tb250aGx5X21pbiIsICJ0ZW1wZXJhdHVyZV9hbm51YWxfYXZlcmFnZSIsICJiaW9tZV9uYW1lIiwgImhhcHBpbmVzc19mdXR1cmVfbGlmZSIsICJjaXR5X2VsZXZhdGlvbl9kZWx0YSIsICJjaXR5X21lYW5fZWxldmF0aW9uIiwgImNpdHlfZ2RwX3Blcl9wb3B1bGF0aW9uIgoicmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQiLCAiYm90aF9wb29sX3NpemUiLCAidGVtcGVyYXR1cmVfbW9udGhseV9taW4iLCAicmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhIiwgImNpdHlfZWxldmF0aW9uX2RlbHRhIgoKYGBge3J9CmdncGxvdCgpICsgCiAgZ2VvbV9wb2ludChhZXMoeCA9IG1lcmxpbl9wb29sX3NpemUsIHkgPSByZXNwb25zZSksIG1lcmxpbl9jaXR5X25pY2hlX2RhdGFfZml4ZWQsIGNvbG9yID0gInJlZCIpICsKICBnZW9tX3BvaW50KGFlcyh4ID0gYmlyZGxpZmVfcG9vbF9zaXplLCB5ID0gcmVzcG9uc2UpLCBiaXJkbGlmZV9jaXR5X25pY2hlX2RhdGFfZml4ZWQsIGNvbG9yID0gImJsdWUiKSArCiAgZ2VvbV9wb2ludChhZXMoeCA9IGVpdGhlcl9wb29sX3NpemUsIHkgPSByZXNwb25zZSksIGVpdGhlcl9jaXR5X25pY2hlX2RhdGFfZml4ZWQsIGNvbG9yID0gImdyZWVuIikgKwogIGdlb21fcG9pbnQoYWVzKHggPSBib3RoX3Bvb2xfc2l6ZSwgeSA9IHJlc3BvbnNlKSwgYm90aF9jaXR5X25pY2hlX2RhdGFfZml4ZWQsIGNvbG9yID0gInB1cnBsZSIpCmBgYApgYGB7cn0KZ2dwbG90KCkgKyAKICBnZW9tX3BvaW50KGFlcyh4ID0gcmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQsIHkgPSByZXNwb25zZSksIG1lcmxpbl9jaXR5X25pY2hlX2RhdGFfZml4ZWQsIGNvbG9yID0gInJlZCIpICsKICBnZW9tX3BvaW50KGFlcyh4ID0gcmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQsIHkgPSByZXNwb25zZSksIGJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YV9maXhlZCwgY29sb3IgPSAiYmx1ZSIpICsKICBnZW9tX3BvaW50KGFlcyh4ID0gcmVnaW9uXzEwMGttX2N1bHRpdmF0ZWQsIHkgPSByZXNwb25zZSksIGVpdGhlcl9jaXR5X25pY2hlX2RhdGFfZml4ZWQsIGNvbG9yID0gImdyZWVuIikgKwogIGdlb21fcG9pbnQoYWVzKHggPSByZWdpb25fMTAwa21fY3VsdGl2YXRlZCwgeSA9IHJlc3BvbnNlKSwgYm90aF9jaXR5X25pY2hlX2RhdGFfZml4ZWQsIGNvbG9yID0gInB1cnBsZSIpCmBgYApgYGB7cn0KZ2dwbG90KCkgKyAKICBnZW9tX3BvaW50KGFlcyh4ID0gcmVnaW9uXzIwa21fZWxldmF0aW9uX2RlbHRhLCB5ID0gcmVzcG9uc2UpLCBtZXJsaW5fY2l0eV9uaWNoZV9kYXRhX2ZpeGVkLCBjb2xvciA9ICJyZWQiKSArCiAgZ2VvbV9wb2ludChhZXMoeCA9IHJlZ2lvbl8yMGttX2VsZXZhdGlvbl9kZWx0YSwgeSA9IHJlc3BvbnNlKSwgYmlyZGxpZmVfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkLCBjb2xvciA9ICJibHVlIikgKwogIGdlb21fcG9pbnQoYWVzKHggPSByZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEsIHkgPSByZXNwb25zZSksIGVpdGhlcl9jaXR5X25pY2hlX2RhdGFfZml4ZWQsIGNvbG9yID0gImdyZWVuIikgKwogIGdlb21fcG9pbnQoYWVzKHggPSByZWdpb25fMjBrbV9lbGV2YXRpb25fZGVsdGEsIHkgPSByZXNwb25zZSksIGJvdGhfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkLCBjb2xvciA9ICJwdXJwbGUiKQpgYGAKYGBge3J9CmdncGxvdCgpICsgCiAgZ2VvbV9wb2ludChhZXMoeCA9IGNpdHlfZWxldmF0aW9uX2RlbHRhLCB5ID0gcmVzcG9uc2UpLCBtZXJsaW5fY2l0eV9uaWNoZV9kYXRhX2ZpeGVkLCBjb2xvciA9ICJyZWQiKSArCiAgZ2VvbV9wb2ludChhZXMoeCA9IGNpdHlfZWxldmF0aW9uX2RlbHRhLCB5ID0gcmVzcG9uc2UpLCBiaXJkbGlmZV9jaXR5X25pY2hlX2RhdGFfZml4ZWQsIGNvbG9yID0gImJsdWUiKSArCiAgZ2VvbV9wb2ludChhZXMoeCA9IGNpdHlfZWxldmF0aW9uX2RlbHRhLCB5ID0gcmVzcG9uc2UpLCBlaXRoZXJfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkLCBjb2xvciA9ICJncmVlbiIpICsKICBnZW9tX3BvaW50KGFlcyh4ID0gY2l0eV9lbGV2YXRpb25fZGVsdGEsIHkgPSByZXNwb25zZSksIGJvdGhfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkLCBjb2xvciA9ICJwdXJwbGUiKQpgYGAKCmBgYHtyfQpnZ3Bsb3QoKSArIAogIGdlb21fcG9pbnQoYWVzKHggPSB0ZW1wZXJhdHVyZV9tb250aGx5X21pbiwgeSA9IHJlc3BvbnNlKSwgbWVybGluX2NpdHlfbmljaGVfZGF0YV9maXhlZCwgY29sb3IgPSAicmVkIikgKwogIGdlb21fcG9pbnQoYWVzKHggPSB0ZW1wZXJhdHVyZV9tb250aGx5X21pbiwgeSA9IHJlc3BvbnNlKSwgYmlyZGxpZmVfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkLCBjb2xvciA9ICJibHVlIikgKwogIGdlb21fcG9pbnQoYWVzKHggPSB0ZW1wZXJhdHVyZV9tb250aGx5X21pbiwgeSA9IHJlc3BvbnNlKSwgZWl0aGVyX2NpdHlfbmljaGVfZGF0YV9maXhlZCwgY29sb3IgPSAiZ3JlZW4iKSArCiAgZ2VvbV9wb2ludChhZXMoeCA9IHRlbXBlcmF0dXJlX21vbnRobHlfbWluLCB5ID0gcmVzcG9uc2UpLCBib3RoX2NpdHlfbmljaGVfZGF0YV9maXhlZCwgY29sb3IgPSAicHVycGxlIikKYGBgCgpgYGB7cn0KZ2dwbG90KCkgKyAKICBnZW9tX3BvaW50KGFlcyh4ID0gaGVyYmFjZW91c193ZXRsYW5kLCB5ID0gcmVzcG9uc2UpLCBtZXJsaW5fY2l0eV9uaWNoZV9kYXRhX2ZpeGVkLCBjb2xvciA9ICJyZWQiKSArCiAgZ2VvbV9wb2ludChhZXMoeCA9IGhlcmJhY2VvdXNfd2V0bGFuZCwgeSA9IHJlc3BvbnNlKSwgYmlyZGxpZmVfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkLCBjb2xvciA9ICJibHVlIikgKwogIGdlb21fcG9pbnQoYWVzKHggPSBoZXJiYWNlb3VzX3dldGxhbmQsIHkgPSByZXNwb25zZSksIGVpdGhlcl9jaXR5X25pY2hlX2RhdGFfZml4ZWQsIGNvbG9yID0gImdyZWVuIikgKwogIGdlb21fcG9pbnQoYWVzKHggPSBoZXJiYWNlb3VzX3dldGxhbmQsIHkgPSByZXNwb25zZSksIGJvdGhfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkLCBjb2xvciA9ICJwdXJwbGUiKQpgYGAKCmBgYHtyfQpnZ3Bsb3QoKSArIAogIGdlb21fcG9pbnQoYWVzKHggPSBoYXBwaW5lc3NfZnV0dXJlX2xpZmUsIHkgPSByZXNwb25zZSksIG1lcmxpbl9jaXR5X25pY2hlX2RhdGFfZml4ZWQsIGNvbG9yID0gInJlZCIpICsKICBnZW9tX3BvaW50KGFlcyh4ID0gaGFwcGluZXNzX2Z1dHVyZV9saWZlLCB5ID0gcmVzcG9uc2UpLCBiaXJkbGlmZV9jaXR5X25pY2hlX2RhdGFfZml4ZWQsIGNvbG9yID0gImJsdWUiKSArCiAgZ2VvbV9wb2ludChhZXMoeCA9IGhhcHBpbmVzc19mdXR1cmVfbGlmZSwgeSA9IHJlc3BvbnNlKSwgZWl0aGVyX2NpdHlfbmljaGVfZGF0YV9maXhlZCwgY29sb3IgPSAiZ3JlZW4iKSArCiAgZ2VvbV9wb2ludChhZXMoeCA9IGhhcHBpbmVzc19mdXR1cmVfbGlmZSwgeSA9IHJlc3BvbnNlKSwgYm90aF9jaXR5X25pY2hlX2RhdGFfZml4ZWQsIGNvbG9yID0gInB1cnBsZSIpCmBgYApgYGB7cn0KZ2dwbG90KCkgKyAKICBnZW9tX2JveHBsb3QoYWVzKHggPSByZXNwb25zZSwgeSA9IGJpb21lX25hbWUpLCBtZXJsaW5fY2l0eV9uaWNoZV9kYXRhX2ZpeGVkKQpgYGAKCmBgYHtyfQpnZ3Bsb3QoKSArIAogIGdlb21fYm94cGxvdChhZXMoeCA9IHJlc3BvbnNlLCB5ID0gYmlvbWVfbmFtZSksIGJpcmRsaWZlX2NpdHlfbmljaGVfZGF0YV9maXhlZCkKYGBgCgpgYGB7cn0KZ2dwbG90KCkgKyAKICBnZW9tX2JveHBsb3QoYWVzKHggPSByZXNwb25zZSwgeSA9IGJpb21lX25hbWUpLCBlaXRoZXJfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkKQpgYGAKCmBgYHtyfQpnZ3Bsb3QoKSArIAogIGdlb21fYm94cGxvdChhZXMoeCA9IHJlc3BvbnNlLCB5ID0gYmlvbWVfbmFtZSksIGJvdGhfY2l0eV9uaWNoZV9kYXRhX2ZpeGVkKQpgYGAK